<?php

/**
 * Plugin para manejo de Contacto
 *
 */
class Contacto extends Entity {

	var $nombre;
	var $email;
	var $telefono;
	var $mensaje;
	
	public function __construct() {
		parent::__construct();			
	}
	
	
	/**
	* Valida los datos ingresados para un nuevo contacto
	*/
	function validate() {
		
		// Valida nombre
		if (Validation::isEmptyString($this->nombre))
			$this->addMessage(Message::$NOMBRE_CANT_EMPTY);
		else if (!Validation::isLessMaxLengthString($this->nombre, 50))
			$this->addMessage(Message::$NOMBRE_LENGTH_LARGER_50_CHARS);
			
		// Valida email
		if (Validation::isEmptyString($this->email))
			$this->addMessage(Message::$EMAIL_CANT_EMPTY);
		else if (!Validation::isLessMaxLengthString($this->email, 50))
			$this->addMessage(Message::$EMAIL_LENGTH_LARGER_50_CHARS);
		else if (!Validation::isEmail($this->email))
			$this->addMessage(Message::$EMAIL_NOT_VALID);			

		// Valida telefono
		if (!Validation::isLessMaxLengthString($this->telefono, 50))
			$this->addMessage(Message::$TELEFONO_LENGTH_LARGER_50_CHARS);
			
		// Valida mensaje
		if (Validation::isEmptyString($this->mensaje))
			$this->addMessage(Message::$MENSAJE_CANT_EMPTY);
		else if (!Validation::isLessMaxLengthString($this->mensaje, 300))
			$this->addMessage(Message::$MENSAJE_LENGTH_LARGER_300_CHARS);			
			
		return Validation::isEmptyArray($this->messages);
	}
	
	
	/**
	 * Submit del formulario de contacto, donde se envia por email
	 */
	function submit() {
		include('conf/configuration.php');
		$contacto_subject = str_replace("%NOMBRE%", $this->nombre, MAIL_CONTACTO_SUBJECT);
		$contacto_body = $this->mensaje . '<br/><br/>' . $this->nombre; 
		
		if (!Validation::isEmptyString($this->telefono))
			$contacto_body  .= '<br/> <b>Tel</b>: ' . $this->telefono; 
		include('class/class.MailPlugin.php');	
		$success = MailPlugin::send($this->email, $this->nombre, MAIL_TO_1, $contacto_subject, $contacto_body);
		
		if ($success == true)
			$this->addMessage(Message::$CONTACTO_SEND_SUCCESS);
		else
			$this->addMessage(Message::$CONTACTO_SEND_FAIL);
			
		return $success;
	}
	
}

